/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.viajaconmigo.service;

import com.viajaconmigo.model.Pais;
import com.viajaconmigo.model.Propuesta;
import com.viajaconmigo.model.Solicitud;
import com.viajaconmigo.model.Usuario;
import com.viajaconmigo.model.dto.ParDeFechas;


import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.faces.model.SelectItem;

/**
 *
 * @author Pablo
 */

public interface PropuestaService {

    public List<Propuesta> buscaPropuesta(Integer paisDestino, Date fechaIni, 
            Date fechaFin, Short nDiasMax, Short nDiasMin, Integer planEco, 
            Integer planOcio);


    public Propuesta getPropuesta(Integer idPropuesta);

    public Solicitud getSolicitudByNick(Usuario nick, Propuesta propuesta);
    
    public Solicitud newSolicitud(Usuario nick, Propuesta idPropuesta, String mensaje);

    /*JM
    Se comentan los siguiente métodos puesto que son redundantes respecto al método getPlanEcoTrad
    que contiene la información de ambos. En la capa Service se debe trabajar con clases del modelo.
    */
    /*public String getPlanEcoDescr(int planEco, String idioma);

    public String getPlanEcoNombre(int planEco, String idioma);*/

    /*JM
    Se comentan los siguientes métodos porque la parte de traducciones la gestiona el 
    i18nManager
    */
    /*public PlanEcoTrad getPlanEcoTrad(PlanEco plan, String idioma);
    
    public PlanOcioTrad getPlanOcioTrad(PlanOcio plan, String idioma);

    public PaisTrad getPaisTrad(Pais pais, String idioma);*/

    public Pais getPais(Integer idPais);

    public void insertProposal(Usuario nick, ArrayList<SelectItem> destinos, ArrayList<ParDeFechas> fechas, 
            Double coste_max, Double coste_min, Short nDiasMax, Short nDiasMin, 
            Integer planEco, Integer planOcio, String comentario, Boolean publica);

    public List<Propuesta> obtenerPropuestasPorMi(Usuario nick);
    
    public List<Propuesta> obtenerPropuestasPorOtros(Usuario nick);
    
    public List<Propuesta> obtenerPropuestasPasadas(Usuario nick);
   
}
